package cn.darkhorse.device.service;

import cn.darkhorse.device.dto.IotGatewayDTO;
import cn.darkhorse.device.pojo.IotGateway;
import cn.darkhorse.device.pojo.IotPointTable;
import cn.darkhorse.device.vo.IotGatewayVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.page.TableDataInfo;
import icu.mhb.mybatisplus.plugln.base.service.JoinIService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yuanjun
 * @since 2023-10-11
 */
public interface IotGatewayService extends JoinIService<IotGateway> {

    /**
     * 列表
     * @param dto
     * @return
     */
    TableDataInfo listAll(IotGatewayDTO dto);

    /**
     * 查看
     * @param iotId
     * @return
     */
    IotGatewayVO view(Long iotId);

    /**
     * 保存
     * @param vo
     * @return
     */
    Long saveIot(IotGatewayVO vo);

    /**
     * 删除
     * @param iotId
     * @return
     */
    boolean delete(Long iotId);

    /**
     * 建表
     * @param gatewayDeviceId
     * @return
     */
    boolean createTable(String gatewayDeviceId);

    /**
     * 是否建表
     * @param gatewayDeviceId
     * @return
     */
    boolean hasTable(String gatewayDeviceId);

    /**
     * 字段名
     * @param dto
     * @return
     */
    List<IotPointTable> export(IotGatewayDTO dto);

    /**
     * 删除表
     * @param dataDeviceId
     * @return
     */
    boolean dropTable(String dataDeviceId);

    /**
     * 网关ID搜索设备参数
     * @param gatewayDeviceId
     * @param paramName
     * @return
     */
    List<IotPointTable> deviceParamsByGaDeId(String gatewayDeviceId,String paramName);


    /**
     * 校验验证码
     * @param code
     * @param uuid
     * @return
     */
    boolean validateCaptcha(String code, String uuid);
}
